var add_symbol;
var add_riqi;
//获取XXX数据
function foretellGetFun(symbol, divid, datetime) {
	var datas = null;
	var myChart = echarts.init(document.getElementById(divid));
	document.getElementById(divid).style.display="";
	$.ajax({
		url : '/stock2/TRADEDATA/selectTradeDataAndForetellListLessDate',
		type : 'post',
		dataType : 'json',
		data : {
			symbol : symbol,
			datetime : datetime
		},
		success : function(res) {
			var arrays_datas = [];
			var resData = res.rows;

			var obj = {
				name : resData[0].name +"_"+ resData[0].symbol,
				data : []
			}
			resData = resData.reverse();

			for ( var n in resData) {
				obj.data.push([ resData[n].datetime,
					resData[n].dateopenprice,
					resData[n].closeprice,
					resData[n].lowprice,
					resData[n].highprice,
					resData[n].volume,
					resData[n].volume5,
					resData[n].zhang,
					resData[n].direction,
					resData[n].businessPrice,
					resData[n].zhangfu
				])
			}
			arrays_datas.push(obj)
			datas = splitData(arrays_datas[0].data);
			var option = getOption(obj.name, datas);
			myChart.setOption(option);
		},
		error : function(XMLHttpRequest, textStatus, errorThrown) {
			console.log(XMLHttpRequest.status + ' ' + XMLHttpRequest.readyState
				+ ' ' + textStatus)
		}
	})
}
// 获取对应的数据格式
function splitData(rawData) {
	var categoryData = [], values = [], nows = [], vol = [], vol5 = [], vol10 = [], zhang = [];
	//买点标记数据
	var symbolDataBuy = [], symbolDataSell = [], symbolDataForetell = [];

	for (var i = 0; i < rawData.length; i++) {
		if (rawData[i][8] == "buy") {
			symbolDataBuy.push([rawData[i][0], rawData[i][3]])
		}
		if (rawData[i][8] == "sell") {
			symbolDataSell.push([rawData[i][0], rawData[i][4]])
		}
		if (rawData[i][8] == "foretell") {
			symbolDataForetell.push([rawData[i][0], rawData[i][4]])
		}


		categoryData.push(rawData[i].splice(0, 1)[0]); //日期
		nows.push((rawData[i][1]).toFixed(2)); //收盘价格
		values.push(rawData[i]); //开，收，低，高，vol,vol5,zhang,dir,buyprice
		vol.push((rawData[i][4] / 10000).toFixed(2));//得到多少万手
		vol5.push((rawData[i][5] / 10000).toFixed(2));//得到多少万手
		zhang.push(rawData[i][6]);

	}
	return {
		categoryData : categoryData,
		now : nows,
		values : values,
		vol	: vol,
		vol5 : vol5,
		vol10 : vol10,
		zhang: zhang,
		symbolDataBuy:symbolDataBuy,
		symbolDataSell:symbolDataSell,
		symbolDataForetell:symbolDataForetell
	};



}
// 平均值
function calculateMA(dayCount, datas) {
	var result = [];
	for (var i = 0, len = datas.values.length; i < len; i++) {
		if (i < dayCount) {
			result.push('-');
			continue;
		}
		var sum = 0;
		for (var j = 0; j < dayCount; j++) {
			sum += datas.values[i - j][1];
		}
		result.push((sum / dayCount).toFixed(2));
	}
	return result;
}
//st start 60%, ed end 100%。200条记录 从120显示到200
var config = {
	st : 60,
	ed : 100,
}
function getOption(lable_name, datas){
	option = {
		title : {
			text : lable_name,
			left: 35,
			top : 15
		},

		// 提示框浮层的位置
		tooltip : {
			trigger : 'axis',
			position : [ 50, '70%' ],
			formatter : function (params, ticket, callback) {
				if(params[0].value.length == 11){
					add_riqi = params[0].axisValue;
					add_symbol  = lable_name.split("_");
					console.log(params);
					return "开盘：" + params[0].value[1] + "，收盘： " + params[0].value[2] +"，最低：" + params[0].value[3] + "，最高：" + params[0].value[4] + "，涨：" + params[0].value[7] + "，涨幅：" + params[0].value[10]+"%";
				}
			},
			borderWidth : 1,
			textStyle : {
				width : '100%'
			},
			// 坐标轴指示器配置项
			axisPointer : {
				type : 'cross',
				label : {
					show : true,
				},
				crossStyle : {
					type : 'solid'
				},

			}
		},
		legend : {
			data : [ '日K', '5日平均线', '10日平均线', '20日平均线', '60日平均线', '5日交易平均', '交易量' ],
			top : 50
		},
		//直角坐标系内绘图网格
		grid : [ {
			top : '18%',
			left : '5%', //grid 组件离容器左侧的距离。
			right : '5%',
			// height : '60%'
			bottom:100
		}, {
			top : '75%',
			left : '5%',
			right : '5%',
			height:80
			// height : '18%',
		} ],
		//坐标轴指示器，指示刻度
		axisPointer : {
			link : {
				xAxisIndex : 'all'
			}
		},
		// 上下两个图表的x轴数据
		xAxis : [ {
			type : 'category',
			scale : true,
			// 坐标轴两边留白策略，类目轴和非类目轴的设置和表现不一样。
			// boundaryGap: false,
			axisLine : {
				onZero : false
			},
			axisLabel : {
				show : false
			},
			axisTick : {
				show : false
			},
			splitLine : {
				show : false
			},
			data : datas.categoryData
		}, {
			type : 'category',
			//boundaryGap: false,
			gridIndex : 1,
			axisTick : {
				show : false
			},
			axisLabel : {
				show : false
			},
			data : datas.categoryData
		} ],
		//grid的轴
		yAxis : [ {
			scale : true,
			position : 'right',
			splitArea : {
				show : true
			},
			splitLine : {
				show : true,
				lineStyle : {
					type : 'dotted'
				}
			}
		}, {
			gridIndex : 1,
			position : 'right',
			xAxisIndex : 1,
			//splitNumber: 3,
			splitArea : {
				show : false
			},
			splitLine : {
				show : true,
				lineStyle : {
					type : 'dotted'
				}
			}
		} ],
		//用于区域缩放
		dataZoom : [ {
			type : 'inside',
			xAxisIndex : [ 0, 1 ],
			start : config.st,
			end : config.ed
		}, {
			show : false,
			type : 'slider',
			xAxisIndex : [ 0, 1 ],
			y : '94%',
			start : config.st,
			end : config.ed
		} ],
		//图表类型有type决定
		series : [
			{
				type : 'candlestick',
				name : '日K',
				data : datas.values
			}, {
				type : 'line',
				name : '5日平均线',
				symbol : 'none',
				data : calculateMA(5, datas),
				lineStyle : {
					opacity : 0.5
				}

			}, {
				type : 'line',
				name : '10日平均线',
				symbol : 'none',
				data : calculateMA(10, datas),
				lineStyle : {
					opacity : 0.5
				}
			}, {
				type : 'line',
				name : '20日平均线',
				symbol : 'none',
				data : calculateMA(20, datas),
				lineStyle : {
					opacity : 0.5
				}
			}, {
				type : 'line',
				name : '60日平均线',
				symbol : 'none',
				data : calculateMA(60, datas),
				lineStyle : {
					opacity : 0.5
				}
			}, {
				type : 'line',
				name : '5日交易平均', //下面的折线图
				xAxisIndex : 1,
				yAxisIndex : 1,
				symbol : 'circle',
				data : datas.vol5
			}, {
				type : 'bar',
				name : '交易量', //下面的柱状图
				xAxisIndex : 1,
				yAxisIndex : 1,
				data : datas.vol,
				itemStyle : {
					normal : {
						color : function(params) {
							var col;
							if (datas.zhang[params.dataIndex] >= 0) {
								col = "#c23531";
							} else {
								col = "#314656";
							}
							return col;
						}

					}
				}
			}

		]
	}
	var data1 = new Array();

	for (var i in datas.symbolDataSell) {
		data1.push({
			symbol:"circle",
			symbolSize:18,
			value:"S",
			symbolOffset:[0, '-70%'],
			coord:datas.symbolDataSell[i],
			itemStyle: {
				color:"#314656"
			}
		});
	}

	for (var i in datas.symbolDataBuy) {
		data1.push({
			symbol:"circle",
			symbolSize:18,
			value:"B",
			symbolOffset:[0, '70%'],
			coord:datas.symbolDataBuy[i],
			itemStyle: {
				color:"#c23531"
			}
		});
	}
	for (var i in datas.symbolDataForetell) {
		data1.push({
			symbol:"circle",
			symbolSize:6,
			value:".",
			symbolOffset:[0, '-200%'],
			coord:datas.symbolDataForetell[i],
			itemStyle: {
				color:"#5555FF"
			}
		});
	}



	option.series[0].markPoint = {data:data1};
	return option;
}

function savemodule(symbol, name, datetime, type){
	$.ajax({
		url : '/stock2/TRAIN/savemodule',
		type : 'post',
		dataType : 'json',
		cache : false,
		data : {
			symbol : symbol,
			datetime : datetime,
			name : name,
			type : type
		},
		success : function(result) {
			alert(result.msg);

		},
		error : function(XMLHttpRequest, textStatus, errorThrown) {
			alert("error");
		}
	})
}
/**
document.onkeydown=function(event){
	var e = event || window.event || arguments.callee.caller.arguments[0];
	if(e && e.keyCode==49 ){ // 按 1
		if(confirm("确定了吗?增加：" + add_symbol[1] + " 名称：" + add_symbol[0] + " 日期：" + add_riqi + " 类型：未破均线，反弹")){
			savemodule(add_symbol[1], add_symbol[0], add_riqi, 1);
		}
	}
	if(e && e.keyCode==50){ // 按 2
		if(confirm("确定了吗?增加：" + add_symbol[1] + " 名称：" + add_symbol[0] + " 日期：" + add_riqi + " 类型：上破均线，向上")){
			savemodule(add_symbol[1], add_symbol[0], add_riqi, 2);
		}
	}
	if(e && e.keyCode==51){ // 3
		if(confirm("确定了吗?增加：" + add_symbol[1] + " 名称：" + add_symbol[0] + " 日期：" + add_riqi + " 类型：杂形")){
			savemodule(add_symbol[1], add_symbol[0], add_riqi, 3);
		}
	}

	if(e && e.keyCode==52){ // 4
		if(confirm("确定了吗?增加：" + add_symbol[1] + " 名称：" + add_symbol[0] + " 日期：" + add_riqi + " 类型：上破均线，向上，失败了")){
			savemodule(add_symbol[1], add_symbol[0], add_riqi, 4);
		}
	}

	if(e && e.keyCode==53){ // 5
		if(confirm("确定了吗?增加：" + add_symbol[1] + " 名称：" + add_symbol[0] + " 日期：" + add_riqi + " 类型：未破均线，反弹，失败了")){
			savemodule(add_symbol[1], add_symbol[0], add_riqi, 5);
		}
	}

};
 */